using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using Iesi.Collections.Generic;


namespace ClimbTracker.BusinessLogic.Entities
{
    public class Route
    {
        public Route(int difficulty, Dictionary<int, WallInstallation> wallInstallations, Dictionary<int, WallInstallation> quickdraws, int maxScore, String name, string timePeriodMinutes)
        {
        }

        public Route()
        {
        }

        #region Memebers

        private int _routeID;
        private String _name;
        private int _maxScore;
        private int _timePeriodMinutes;
        private double _difficulty;
        private string _picturePath;
        private double _rotationAngle = 270;
        private int _startFrame;
        private int _leftBoundary = -1;
        private int _rightBoundary = -1;
        private bool _liveCapture = false;
        private ISet<WallInstallation> _wallInstallations = new HashedSet<WallInstallation>();

        #endregion


        public virtual double Difficulty
        {
            get { return _difficulty; }
            set { _difficulty = value; }
        }

        public virtual String Name
        {
            get { return _name; }
            set { _name = value; }
        }

        public virtual int MaxScore
        {
            get { return _maxScore; }
            set { _maxScore = value; }
        }

        public virtual int TimePeriodMinutes
        {
            get { return _timePeriodMinutes; }
            set { _timePeriodMinutes = value; }
        }


        public virtual ISet<WallInstallation> WallInstallations
        {
            get { return _wallInstallations; }
            set { _wallInstallations = value; }
        }

        public virtual double RotationAngle
        {
            get { return _rotationAngle; }
            set { _rotationAngle = value; }
        }

        public virtual string PicturePath
        {
            get { return _picturePath; }
            set { _picturePath = value; }
        }

        public virtual int RouteID
        {
            get { return _routeID; }
            set { _routeID = value; }
        }

        public virtual int StartFrame
        {
            get { return _startFrame; }
            set { _startFrame = value; }
        }

        public virtual int LeftBoundary
        {
            get { return _leftBoundary; }
            set { _leftBoundary = value; }
        }

        public virtual int RightBoundary
        {
            get { return _rightBoundary; }
            set { _rightBoundary = value; }
        }

        public bool LiveCapture
        {
            get { return _liveCapture; }
            set { _liveCapture = value; }
        }
    }
}
